#include "myhead.h"

/*
	解决生产销售的问题
*/

//定义锁
pthread_mutex_t mymutex;

//定义全局变量
int num=0; //目前商品总的库存数量

//线程1--》生产部门
void *task1(void *arg)
{
	while(1)
	{
		//上锁 
		pthread_mutex_lock(&mymutex);
		num++;
		printf("生产部门生产了产品，库存数量是: %d!\n",num);
		sleep(1);
		//解锁 
		pthread_mutex_unlock(&mymutex);	
		usleep(2000); //不要自己刚解锁，立马自己上锁
	}
}

//线程2--》销售部门
void *task2(void *arg)
{
	while(1)
	{
		//上锁 
		pthread_mutex_lock(&mymutex);
		num--;
		printf("销售部门销售了产品，库存数量是: %d!\n",num);
		sleep(1);
		//解锁 
		pthread_mutex_unlock(&mymutex);	
		usleep(2000);
	}
}


int main()  //主程序，主线程
{
	pthread_t id1,id2;

	//初始化你定义的锁
	pthread_mutex_init(&mymutex,NULL);
	
	pthread_create(&id1,NULL,task1,NULL);  
	//让生产部门先上锁
	sleep(1);
	pthread_create(&id2,NULL,task2,NULL); 

	
	pthread_join(id1,NULL);
	pthread_join(id2,NULL);
	
	//锁的销毁
	pthread_mutex_destroy(&mymutex);
	return 0;
}